CouchDB এর সঙ্গে PHP ইন্টিগ্রেশন

Database Tutorials - কাউচডিবি (CouchDB) CouchDB এবং Java, Python, PHP ইত্যাদি প্রোগ্রামিং ল্যাঙ্গুয়েজে ইন্টিগ্রেশন |
209
209

CouchDB একটি ডকুমেন্ট-ভিত্তিক NoSQL ডাটাবেস, যা JSON ফরম্যাটে ডেটা সংরক্ষণ করে এবং HTTP API এর মাধ্যমে ডেটা অ্যাক্সেস করতে সহায়ক। PHP দিয়ে CouchDB এর সাথে ইন্টিগ্রেশন করা খুবই সহজ, কারণ CouchDB তে সমস্ত অপারেশন HTTP রিকোয়েস্টের মাধ্যমে পরিচালিত হয় এবং PHP এর জন্য বেশ কিছু লাইব্রেরি ও ক্লায়েন্ট প্যাকেজ রয়েছে যা এই রিকোয়েস্টগুলি পাঠাতে সাহায্য করে।

এখানে PHP ব্যবহার করে CouchDB এর সঙ্গে ইন্টিগ্রেশন করার ধাপগুলো আলোচনা করা হয়েছে।


1. PHP CouchDB Client লাইব্রেরি ইনস্টলেশন

PHP তে CouchDB এর সাথে ইন্টিগ্রেশন করার জন্য আপনি php-couchdb বা nano লাইব্রেরি ব্যবহার করতে পারেন। এই লাইব্রেরিগুলি HTTP রিকোয়েস্ট পাঠাতে এবং CouchDB এর ডেটাবেসের সঙ্গে যোগাযোগ করতে সাহায্য করবে।

আপনি composer প্যাকেজ ম্যানেজার ব্যবহার করে এই লাইব্রেরিটি ইনস্টল করতে পারেন।

nano লাইব্রেরি ইনস্টলেশন:

composer require "doctrine/couchdb"

এটি nano লাইব্রেরি ইনস্টল করবে যা CouchDB ডাটাবেসের সাথে সংযোগ করতে ব্যবহৃত হবে।


2. CouchDB এ সংযোগ তৈরি করা

CouchDB তে PHP ব্যবহার করে সংযোগ করার জন্য আপনি nano বা cURL ব্যবহার করতে পারেন। এখানে আমরা nano লাইব্রেরি ব্যবহার করে একটি উদাহরণ দেখাচ্ছি।

CouchDB এর সাথে PHP সংযোগ উদাহরণ:

<?php
require 'vendor/autoload.php';  // Composer autoloader

use Nano\CouchDB\Client;

$client = new Client("http://localhost:5984"); // CouchDB URL

// একটি ডাটাবেসে সংযোগ
$db = $client->useDatabase("my_database");  // 'my_database' আপনার ডাটাবেস নাম

// ডাটাবেস চেক করা
if ($db->exists()) {
    echo "ডাটাবেসটি আছে!";
} else {
    echo "ডাটাবেসটি নেই!";
}
?>

এখানে:

  • Client: CouchDB সার্ভারের URL (এখানে localhost:5984 ব্যবহার করা হয়েছে) দিয়ে Client তৈরি করা হয়েছে।
  • useDatabase: ডাটাবেসের নাম দিয়ে CouchDB এর সঙ্গে সংযোগ স্থাপন করা হচ্ছে।

3. CouchDB তে ডেটা ইনসার্ট (Insert Data)

CouchDB তে নতুন ডকুমেন্ট ইনসার্ট করার জন্য, আপনি insert() ফাংশন ব্যবহার করতে পারেন।

ডেটা ইনসার্ট করার উদাহরণ:

<?php
require 'vendor/autoload.php';

use Nano\CouchDB\Client;

$client = new Client("http://localhost:5984");
$db = $client->useDatabase("my_database");

$doc = [
    'name' => 'John Doe',
    'age' => 30,
    'email' => 'johndoe@example.com',
    'type' => 'user'
];

// ডকুমেন্ট ইনসার্ট করা
$response = $db->createDocument($doc);

echo "ডকুমেন্ট সফলভাবে ইনসার্ট হয়েছে, ID: " . $response->_id;
?>

এখানে:

  • $doc: একটি অ্যাসোসিয়েটিভ অ্যারে তৈরি করা হয়েছে, যা ডকুমেন্টের ফিল্ড ধারণ করে।
  • createDocument(): ডাটাবেসে নতুন ডকুমেন্ট ইনসার্ট করার জন্য ব্যবহৃত।

4. ডেটা রিড (Read Data)

CouchDB তে get() ফাংশন ব্যবহার করে ডেটা রিড করা হয়। এখানে _id এর মাধ্যমে একটি নির্দিষ্ট ডকুমেন্ট পড়া যায়।

ডেটা রিড করার উদাহরণ:

<?php
require 'vendor/autoload.php';

use Nano\CouchDB\Client;

$client = new Client("http://localhost:5984");
$db = $client->useDatabase("my_database");

// ডকুমেন্ট পড়া
$response = $db->getDocument("document_id");

echo "ডকুমেন্টের নাম: " . $response->name;
?>

এখানে:

  • getDocument(): এই ফাংশনটি _id এর মাধ্যমে ডকুমেন্টটি রিটার্ন করে।

5. ডেটা আপডেট (Update Data)

CouchDB তে update() ফাংশন ব্যবহার করে ডকুমেন্ট আপডেট করা হয়। তবে, আপনাকে ডকুমেন্টের _rev ফিল্ডটি জানাতে হবে, কারণ CouchDB ডকুমেন্টের সংস্করণ ট্র্যাক করে।

ডেটা আপডেট করার উদাহরণ:

<?php
require 'vendor/autoload.php';

use Nano\CouchDB\Client;

$client = new Client("http://localhost:5984");
$db = $client->useDatabase("my_database");

// ডকুমেন্ট পড়া
$doc = $db->getDocument("document_id");

// ডকুমেন্টের মান আপডেট করা
$doc->age = 31;

// ডকুমেন্ট আপডেট করা
$response = $db->updateDocument($doc);

echo "ডকুমেন্ট সফলভাবে আপডেট হয়েছে, নতুন রিভিশন: " . $response->_rev;
?>

এখানে:

  • getDocument(): ডকুমেন্টটি প্রথমে পড়া হয়।
  • updateDocument(): _rev সহ ডকুমেন্ট আপডেট করা হয়।

6. ডেটা ডিলিট (Delete Data)

CouchDB তে ডেটা ডিলিট করতে destroy() ফাংশন ব্যবহার করা হয়। এখানে _id এবং _rev প্রয়োজন।

ডেটা ডিলিট করার উদাহরণ:

<?php
require 'vendor/autoload.php';

use Nano\CouchDB\Client;

$client = new Client("http://localhost:5984");
$db = $client->useDatabase("my_database");

// ডকুমেন্ট পড়া
$doc = $db->getDocument("document_id");

// ডকুমেন্ট ডিলিট করা
$response = $db->deleteDocument($doc);

echo "ডকুমেন্ট সফলভাবে মুছে ফেলা হয়েছে!";
?>

এখানে:

  • deleteDocument(): ডকুমেন্টের _id এবং _rev দিয়ে ডকুমেন্ট ডিলিট করা হয়।

7. Views এবং Queries

CouchDB তে MapReduce Views ব্যবহার করে আপনি কাস্টম কুয়েরি তৈরি করতে পারেন এবং PHP দিয়ে সেগুলোর মাধ্যমে ডেটা কুয়েরি করা যায়।

Views কুয়েরি উদাহরণ:

<?php
require 'vendor/autoload.php';

use Nano\CouchDB\Client;

$client = new Client("http://localhost:5984");
$db = $client->useDatabase("my_database");

// View কুয়েরি করা
$response = $db->getView('user_views', 'by_name', ['key' => 'John Doe']);

foreach ($response->rows as $row) {
    echo "Name: " . $row->key . ", Count: " . $row->value . "\n";
}
?>

এখানে:

  • getView(): এটি CouchDB এর View ব্যবহার করে কাস্টম কুয়েরি চালায়।
  • user_views: Design document এর নাম।
  • by_name: View এর নাম যেখানে ডেটা কাস্টম Map এবং Reduce ফাংশন দিয়ে বিশ্লেষণ করা হয়।

উপসংহার

CouchDB এর সাথে PHP ইন্টিগ্রেশন সহজ এবং কার্যকরী। nano লাইব্রেরি ব্যবহার করে আপনি সহজেই CouchDB এর সাথে সংযোগ তৈরি করতে পারেন এবং ডেটা insert, read, update, এবং delete করতে পারেন। এছাড়াও, Views এবং MapReduce ফাংশন ব্যবহার করে কাস্টম কুয়েরি তৈরি করা সম্ভব, যা আপনার ডেটাবেসের উপর দ্রুত এবং কার্যকরী বিশ্লেষণ করতে সহায়ক।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion